Как я могу создать переменные, чтобы получить данные файла и вставить в БД эти переменные? - PullRequest
0 голосов
/ 18 июля 2011

Я новичок и потратил более 3 часов, пытаясь найти способ получить имя файла, размер файла, путь из загруженного файла.Но эта форма делает это так, как я не в состоянии понять.Мне нужно имя файла, размер файла, переменные пути хранятся в БД.Как реализовать вставку $ sql в коде ниже:

<code>Code:

 $upload_dir = "/var/www/anyexample/aeu"; // Directory for file storing
                                        // filesystem path


  $web_upload_dir = "/aeu"; // Directory for file storing`
                      // Web-Server dir 

 /* upload_dir is filesystem path, something like
 /var/www/htdocs/files/upload or c:/www/files/upload

    web upload dir, is the webserver path of the same
     directory. If your upload-directory accessible under 
    www.your-domain.com/files/upload/, then 
   web_upload_dir is /files/upload
   */


 // testing upload dir 
 // remove these lines if you're shure 
 // that your upload dir is really writable to PHP scripts
   $tf = $upload_dir.'/'.md5(rand()).".test";
   $f = @fopen($tf, "w");
   if ($f == false) 
    die("Fatal error! {$upload_dir} is not writable. Set 'chmod 777 {$upload_dir}'
    or something like this");
    fclose($f);
     unlink($tf);
    // end up upload dir testing 



   // FILEFRAME section of the script
   if (isset($_POST['fileframe'])) 
   {
      $result = 'ERROR';
     $result_msg = 'No FILE field found';

      if (isset($_FILES['file']))  // file was send from browser
      {
    if ($_FILES['file']['error'] == UPLOAD_ERR_OK)  // no error
    {
        $filename = $_FILES['file']['name']; // file name 
        move_uploaded_file($_FILES['file']['tmp_name'], $upload_dir.'/'.$filename);
        // main action -- move uploaded file to $upload_dir 
        $result = 'OK';
    }
    elseif ($_FILES['file']['error'] == UPLOAD_ERR_INI_SIZE)
        $result_msg = 'The uploaded file exceeds the upload_max_filesize directive in php.ini';
    else 
        $result_msg = 'Unknown error';

    // you may add more error checking
    // see http://www.php.net/manual/en/features.file-upload.errors.php
    // for details 
}

// outputing trivial html with javascript code 
// (return data to document)

// This is a PHP code outputing Javascript code.
// Do not be so confused ;) 
echo '<html><head><title>-</title></head><body>';
echo '<script language="JavaScript" type="text/javascript">'."\n";
echo 'var parDoc = window.parent.document;';
// this code is outputted to IFRAME (embedded frame)
// main page is a 'parent'

if ($result == 'OK')
{
    // Simply updating status of fields and submit button
    echo 'parDoc.getElementById("upload_status").value = "file successfully uploaded";';
    echo 'parDoc.getElementById("filename").value = "'.$filename.'";';
    echo 'parDoc.getElementById("filenamei").value = "'.$filename.'";';
    echo 'parDoc.getElementById("upload_button").disabled = false;';
}
else
{
    echo 'parDoc.getElementById("upload_status").value = "ERROR: '.$result_msg.'";';
}

echo "\n".'</script></body></html>';

exit(); // do not go futher 
}
    // FILEFRAME section END



     // just userful functions
     // which 'quotes' all HTML-tags and special symbols 
     // from user input 
     function safehtml($s)
     {
      $s=str_replace("&", "&amp;", $s);
       $s=str_replace("<", "&lt;", $s);
       $s=str_replace(">", "&gt;", $s);
       $s=str_replace("'", "&apos;", $s);
       $s=str_replace("\"", "&quot;", $s);
      return $s;
     }

      if (isset($_POST['description']))
       {
         $filename = $_POST['filename'];
         $size = filesize($upload_dir.'/'.$filename);
           $date = date('r', filemtime($upload_dir.'/'.$filename));
           $description = safehtml($_POST['description']);

       // Let's generate file information page
       $html =<<<END
      <html><head><title>{$filename} [uploaded by IFRAME Async file uploader]</title></head>
        <body>
     <h1>{$filename}</h1>
   <p>This is a file information page for your uploaded file. Bookmark it, or send to anyone...   </p>
   <p>Date: {$date}</p>
   <p>Size: {$size} bytes</p>
  <p>Description: 
   <pre>{$description}

загрузить файл
вернуться к загрузке файла
upload-log



Пример AnyExample END;// сохранить HTML $ f = fopen ($ upload_dir. '/'. $ filename .'- desc.html ', "w");fwrite ($ f, $ html);fclose ($ е);$ msg = "Файл {$ filename} загружен, см. страницу информации о файле ";// Сохранить в файл upload-log $ f = fopen ($ upload_dir. "/ Upload-log.html", "a");fwrite ($ f, "

$ msg

\ n");fclose ($ е);// установить сообщение о результате в cookie setcookie ('msg', $ msg);// перенаправление на главную страницу скрипта // мы делаем это, чтобы избежать повторного размещения формы POST // этот метод вывода сообщений называется «flash» в заголовке Ruby on Rails («Location: http://".$_SERVER['HTTP_HOST'].$PHP_SELF); exit (); /)/ редирект был отправлен, поэтому мы покидаем сейчас} // извлекаем сообщение из cookie if (isset ($ _ COOKIE ['msg']) && $ _COOKIE ['msg']! = '') {if (get_magic_quotes_gpc ())$ msg = stripslashes ($ _ COOKIE ['msg']); иначе $ msg = $ _COOKIE ['msg']; // очистка куки, мы не собираемся отображать одно и то же сообщение несколько раз setcookie ('msg', '');}?> Пример загрузки асинхронного файла IFRAME ». $ сообщ. ';?>

Загрузить файл:

Файл начнет загружаться сразу после выбора.

Вы можете написать описание файла во время загрузки файла.

загрузчик текстовых файлов:
сохранить файл

/upload-log.html"> upload-log


Пример AnyExample

1 Ответ

1 голос
/ 18 июля 2011
move_uploaded_file($_FILES['file']['tmp_name'], $upload_dir.'/'.$filename);

Я бы предложил добавить что-то вроде следующего после предыдущей строки:

$size = filesize($upload_dir.'/'.$filename);
$path = $upload_dir.'/'.$filename;

mysql_connect(YOUR_HOST, YOUR_USERNAME, YOUR_PASSWORD);
mysql_select_db(YOUR_DATABASE);

mysql_query('INSERT INTO your_table SET filename=$filename, size=$size, path=$path');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...